#include <stdio.h>
#include <string.h>
#define BUFFER_SIZE 5

/*数组*/

int main()
{
    /*1.数组的定义*/
    /*整个代码不允许使用魔数*/
    int array1[BUFFER_SIZE];
    int len = sizeof(array1);
    printf("len:%d\n",len);

    /*2.数组的值*/
/*  
    array1[0] = 10;
    array1[1] = 20;
    array1[2] = 30;
    array1[3] = 40;
    array1[4] = 50;
*/
    /*循环赋值*/
    for(int idx = 0; idx < BUFFER_SIZE; idx++)
    {
        array1[idx] = (idx + 1) * 10;
    }


    /*循环语句打印*/
    for (int idx = 0; idx < BUFFER_SIZE; idx++)
    {
        printf("array1[%d]=%d\n", idx, array1[idx]);
    }


    /*3.连续的存储空间*/
    printf("0X%p\n",&array1[0]);  //数组名
    printf("0X%p\n",&array1[1]);  //数组名
    printf("0X%p\n",&array1[2]);  //数组名
    printf("0X%p\n",&array1[3]);  //数组名
    printf("0X%p\n",&array1[4]);  //数组名



    /*4.脏数据*/
    int a;
    printf("a:%d\n",a);

    int array5[BUFFER_SIZE];
    /*清除脏数据*/
    memset(array5, 0, sizeof(array5));

    for(int idx = 0; idx < BUFFER_SIZE; idx++)
    {
        printf("array5[%d] = %d\n", idx, array5[idx]);
    }

    /*5.数组的本质*/
    /*todo...*/
    /*数组名就是数组的首地址。数组的第一个元素也是首地址*/
    printf("0X%p\n",array5);
    printf("0X%p\n",&array5[0]);

    /*6.数组的长度*/
    
    /*数组占用的字节大小*/
    int totalLen = sizeof(array5);
    printf("tatallen:%d\n",totalLen);
    int soloLen = sizeof(array5[0]);
    printf("soloLen:%d\n",soloLen);

    int elementSize = totalLen / soloLen;
    printf("element size:%d\n",elementSize);


    

}